package com.hspedu.tankgame4;

import java.util.Vector;

/**
 * @author DL5O
 * @version 1.0
 * 射击子弹
 */
public class Shot implements Runnable {
    int x;//子弹的x坐标
    int y;//子弹的y坐标
    int direct = 0;//子弹的方向
    int speed = 20;//子弹的速度
    boolean loop = true;//线程的开关
    boolean isLive = true;//子弹是否存活


    public Shot(int x, int y, int direct) {
        this.x = x;
        this.y = y;
        this.direct = direct;
    }

    public Shot(int x, int y, int direct, int speed) {
        this.x = x;
        this.y = y;
        this.direct = direct;
        this.speed = speed;
    }

    @Override
    public void run() {
        while (loop) {
            //让线程休眠50毫秒
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //根据方向来改变x,y坐标
            switch (direct) {
                //0,1,2,3 上 右 左 下
                case 0://向上的
                    y -= speed;
                    break;
                case 1://向右边的
                    x += speed;
                    break;
                case 2://向下
                    y += speed;
                    break;
                case 3://向左
                    x -= speed;
                    break;
                default:
                    break;
            }

            //老师测试，这里我们输出x，y坐标
            //System.out.println("子弹 x=" + x + ",y=" + y);

            //当子弹移动到面板的边界时，就应该销毁（把启动的子弹的线程销毁）
            //当子弹碰到敌人tank时也应该结束这个线程
            if (!(x >= 0 && x <= 1000 && y >= 0 && y <= 750 && isLive)) {
                //System.out.println("子弹线程退出");
                isLive = false;
                break;
            }

           /* if(x == 0 || x == 1000 || y == 0 || y==750){
                loop = false;
            }*/
        }
    }
}
